package com.itlong.cloud.property.service;

import com.itlong.cloud.POJO.DTO.property.PropertyMealManageGetDTO;
import com.itlong.cloud.POJO.VO.app.AppElevatorMealInfoVO;
import com.itlong.cloud.POJO.VO.property.PropertyMealManageGetVO;
import com.itlong.cloud.utils.page.Page;

import java.util.List;

/**
 * <desc>
 *      共享电梯套餐管理接口。
 * <desc/>
 *
 * @createDate 2020/07/15
 */
public interface IPropertyMealManageService {

    /**
     * <desc>
     *      共享电梯套餐信息分页查询
     * <desc/>
     *
     * @param propertyMealManageGetDTO 分页查询参数
     * @return
     * @author Qiang.S
     * @createDate 2020/07/15
     */
    Page<PropertyMealManageGetVO> getMealManageByPage(PropertyMealManageGetDTO propertyMealManageGetDTO) throws Exception;

    /**
     * <desc>
     *      添加共享电梯套餐
     * <desc/>
     *
     * @param propertyMealManageGetDTO 分页查询参数
     * @return
     * @author Qiang.S
     * @createDate 2020/07/15
     */
    Integer saveMealManageInfo(PropertyMealManageGetDTO propertyMealManageGetDTO) throws Exception;

    /**
     * <desc>
     *      查看共享电梯套餐
     * <desc/>
     *
     * @param mealId 套餐编号
     * @return
     * @author Qiang.S
     * @createDate 2020/07/15
     */
    PropertyMealManageGetVO getMealManageDetail(String mealId) throws Exception;

    /**
     * <desc>
     *      查询套餐是否使用
     * <desc/>
     *
     * @param mealId 套餐编号
     * @return
     * @author Qiang.S
     * @createDate 2020/07/15
     */
    Integer checkMeal(String mealId) throws Exception;

    /**
     * <desc>
     *      删除套餐
     * <desc/>
     *
     * @param mealId 套餐编号
     * @return
     * @author Qiang.S
     * @createDate 2020/07/15
     */
    Integer deleteMealManageInfo(String mealId) throws Exception;

    /**
     * <desc>
     *      更新共享电梯套餐
     * <desc/>
     *
     * @param propertyMealManageGetDTO 分页查询参数
     * @return
     * @author Qiang.S
     * @createDate 2020/07/15
     */
    Integer updateMealManageInfo(PropertyMealManageGetDTO propertyMealManageGetDTO) throws Exception;

    /**
     * <desc>
     *      移动共享电梯套餐
     * <desc/>
     *
     * @param propertyMealManageGetDTO 分页查询参数
     * @return
     * @author Qiang.S
     * @createDate 2020/07/15
     */
    void moveMealManageInfo(PropertyMealManageGetDTO propertyMealManageGetDTO) throws Exception;

    /**
     * <desc>
     *      APP获取乘梯缴费套餐列表
     * <desc/>
     *
     * @param projectId 项目编号
     * @param roomId 房间编号
     * @return
     * @author Qiang.S
     * @createDate 2020/07/15
     */
    List<AppElevatorMealInfoVO> getMealManageByProjectId(String projectId, String roomId) throws Exception;

}
